package Day_0201.JUC;

/**
 * @author zxc
 * @date 2023/02/01 18:10
 **/
public class ThreadPool_CoreThread {
    public static void main(String[] args) {
        /**
         * 线程池核心线程数的设置
         * ===》 分为CPU密集型和IO密集型
         *
         * 1.CPU密集型
         * 这种任务消耗的主要是 CPU 资源，可以将线程数设置为 N（CPU 核心数）+1，
         * 比 CPU 核心数多出来的一个线程是为了防止线程偶发的缺页中断，或者其它原因导致的任务暂停而带来的影响。
         * 一旦任务暂停，CPU 就会处于空闲状态，而在这种情况下多出来的一个线程就可以充分利用 CPU 的空闲时间。
         * ===》 即，若是线程池所处理的任务为CPU密集型，就将核心线程数设置为N + 1;（N，为CPU核心线程;）
         *
         * 2.IO密集型
         * 这种任务应用起来，系统会用大部分的时间来处理 I/O 交互，
         * 而线程在处理 I/O 的时间段内不会占用 CPU 来处理，这时就可以将 CPU 交出给其它线程使用。
         * 因此在 I/O 密集型任务的应用中，我们可以多配置一些线程，具体的计算方法是 ： 核心线程数=CPU核心数量*2。
         * ===》 即，若是线程池所处理的任务为I/O密集型的话，就将核心线程数设置为2 * N;
         */
    }
}
